1. Field of the Invention
The present invention generally relates to efficient parallelization of programs in parallel computer systems and, more particularly, to a unique object-storage encapsulation of queuing, communication, and schedule/dispatch systems which provide efficient problem program parallelism. The invention provides architectural enhancements to existing operating system tasking structures that support "multi-tasking" or "multi-programming" in a parallel computer environment.
2. Definitions
COHERENCE (MEMORY CONSISTENCY) is the guarantee that there is logically only one copy of data even if there are multiple physical copies or even if it is shared by multiple processors. It includes no guarantees on atomicity, synchronization, sequentiality, etc.
CONCEPTUAL SEQUENCE is the view that instructions are executed one at a time, in order.
PHYSICAL SEQUENCE is the actual execution order by a physical processor, which may include execution of instructions out of conceptual sequence.
OBSERVED SEQUENCE is the actual order of instruction execution which is observed. This may or may not conform to the conceptual or physical sequence.
TASK SEQUENTIALITY is the guarantee that a task (process) views itself as executing instructions and referencing memory in conceptual sequence.
INTER-TASK SEQUENTIALITY (INTER-TASK CONCEPTUAL SEQUENCE) is the guarantee that a task can view other tasks as appearing to execute instructions and access memory sequentially (in conceptual sequence). This is important when independent tasks synchronize or communicate via shared data, but it is not generally important otherwise.
ATOMICITY (BLOCK-CONCURRENCY) is the guarantee that modifications to data appear to be completely done or not done, and never partially done.
SYNCHRONIZATION is the guarantee that an order or point of execution can be specified among two or more tasks. It is a guarantee that inter-task sequentiality, coherence and atomicity among the synchronizing tasks can be specified at that point.
CACHE as used herein refers to a primarily hardware managed, processor-logical storage, although software may assist.
PRIVATE STORAGE as used herein refers to software managed, task-local storage. This includes, for example, IBM System/370 registers.